package com.zuipin.enums;

import java.util.ArrayList;
import java.util.List;

public enum OrderStatusEnum {
	
	待付款("WAIT_PAY", 1), // //
	待审核("WAIT_CHECK", 2), // //
	处理中("DEALING", 3), // //dealing
	打包中("PACKING", 4), //
	已发货("DELIVERED", 5), // 对应cbt的是已发货
	发往验货卖家发往茶帮通("SALLER_CBT", 6), //
	已入库茶帮通已收货("SUB_REC", 7), //
	验货通过茶帮通已验货("CHECK_OK", 8), //
	验货不通过茶帮通已验货("CHECK_BAD", 9), //
	已发货茶帮通发往买家("CBT_BUYER", 10), //
	订单完成("FINISH", 11), //
	已关闭("CLOSE", 12), //
	已取消("CANCEL", 13), //
	退货完成("RETURN_DONE", 14), //
	申请退货中("RETURN", 15), //
	支付成功待审核("PAY_WAIT_AUDIT", 16);
	
	public static final String	doing		= "DOING";		// 进行中
	public static final String	auditing	= "AUDITING";	// 待审核
	public static final String	finshed		= "FINSHED";	// 交易完成
	private Integer				index;
	private String				value;
	
	private OrderStatusEnum(String value, Integer index) {
		this.value = value;
		this.index = index;
	}
	
	public Integer getIndex() {
		return index;
	}
	
	public void setIndex(Integer index) {
		this.index = index;
	}
	
	public String getValue() {
		return value;
	}
	
	public void setValue(String value) {
		this.value = value;
	}
	
	public static String getValueByIndex(Integer index) {
		if (index != null) {
			for (OrderStatusEnum c : OrderStatusEnum.values()) {
				if (c.index.equals(index)) {
					return c.value;
				}
			}
		}
		return null;
	}
	
	// 获取中文描述
	public static String getNameByValue(String value) {
		if ("WAIT_PAY".equals(value)) {
			return "待付款";
		} else if ("WAIT_CHECK".equals(value)) {
			return "待审核";
		} else if ("DEALING".equals(value)) {
			return "处理中";
		} else if ("PACKING".equals(value)) {
			return "打包中待发货";
		} else if ("DELIVERED".equals(value)) {
			return "已发货";
		} else if ("SALLER_CBT".equals(value)) {
			return "发往验货卖家发往茶帮通";
		} else if ("SUB_REC".equals(value)) {
			return "已入库茶帮通已收货";
		} else if ("CHECK_OK".equals(value)) {
			return "验货通过茶帮通已验货";
		} else if ("CHECK_BAD".equals(value)) {
			return "验货不通过茶帮通已验货";
		} else if ("CBT_BUYER".equals(value)) {
			return "已发货茶帮通发往买家";
		} else if ("FINISH".equals(value)) {
			return "订单完成";
		} else if ("CLOSE".equals(value)) {
			return "订单关闭";
		} else if ("CANCEL".equals(value)) {
			return "订单取消";
		} else if ("RETURN_DONE".equals(value)) {
			return "退货完成";
		} else if ("RETURN".equals(value)) {
			return "申请退货中";
		} else if ("PAY_WAIT_AUDIT".equals(value)) {
			return "支付成功,待审核";
		}
		return "";
	}
	
	public static List<OrderStatusEnum> getStatusList(String group) {
		List<OrderStatusEnum> list = new ArrayList<OrderStatusEnum>();
		if (OrderStatusEnum.doing.equals(group)) {
			list.add(OrderStatusEnum.处理中);
			list.add(OrderStatusEnum.打包中);
			list.add(OrderStatusEnum.已发货);
		} else if (OrderStatusEnum.auditing.equals(group)) {
			list.add(OrderStatusEnum.待审核);
			list.add(OrderStatusEnum.支付成功待审核);
			list.add(OrderStatusEnum.待付款);
		} else if (OrderStatusEnum.finshed.equals(group)) {
			list.add(OrderStatusEnum.订单完成);
		} else {
			list.add(OrderStatusEnum.处理中);
			list.add(OrderStatusEnum.打包中);
			list.add(OrderStatusEnum.已发货);
			list.add(OrderStatusEnum.待审核);
			list.add(OrderStatusEnum.支付成功待审核);
			list.add(OrderStatusEnum.待付款);
			list.add(OrderStatusEnum.已关闭);
			list.add(OrderStatusEnum.已取消);
			list.add(OrderStatusEnum.订单完成);
		}
		return list;
	}
	
	public static void main(String[] args) {
	}
}
